package br.ticketmuseu.model;

import java.util.Calendar;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.Table;

import br.ticketmuseu.model.enums.TipoUsuario;

@Entity
@Table(name = "tb_usuario")
public class Usuario extends ObjetoBasico {

	@Column(name = "login", length = 50, unique = true)
	private String login;

	@Column(name = "senha", length = 16)
	private String senha;

	@Column(name = "dt_criacao")
	private Calendar dtCriacao;

	@Column(name = "dt_ultimo_acesso")
	private Calendar dtUltimoAcesso;

	@Column(name = "primeiro_nome", length = 20)
	private String primeiroNome;

	@Column(name = "ultimo_nome", length = 20)
	private String ultimoNome;

	@Column(name = "dt_nascimento")
	private Calendar dataNascimento;

	@Column(name = "cpf", length = 11, unique = true)
	private String cpf;

	@Column(name = "rg", length = 10, unique = true)
	private String rg;

	@Enumerated(EnumType.STRING)
	private TipoUsuario tipo;

	public Usuario() {
	}

	public Usuario(String login, String senha, Calendar dtCriacao, Calendar dtUltimoAcesso, String primeiroNome, String ultimoNome, Calendar dataNascimento, String cpf, String rg) {
		this.login = login;
		this.senha = senha;
		this.dtCriacao = dtCriacao;
		this.dtUltimoAcesso = dtUltimoAcesso;
		this.primeiroNome = primeiroNome;
		this.ultimoNome = ultimoNome;
		this.dataNascimento = dataNascimento;
		this.cpf = cpf;
		this.rg = rg;
	}

	@Override
	public boolean equals(Object obj) {
		Usuario usr = (Usuario) obj;

		if (usr.getCpf().equals(this.getCpf())) {
			return true;
		} else {
			return false;
		}

	}

	public String getLogin() {
		return login;
	}

	public void setLogin(String login) {
		this.login = login;
	}

	public String getSenha() {
		return senha;
	}

	public void setSenha(String senha) {
		this.senha = senha;
	}

	public Calendar getDtCriacao() {
		return dtCriacao;
	}

	public void setDtCriacao(Calendar dtCriacao) {
		this.dtCriacao = dtCriacao;
	}

	public Calendar getDtUltimoAcesso() {
		return dtUltimoAcesso;
	}

	public void setDtUltimoAcesso(Calendar dtUltimoAcesso) {
		this.dtUltimoAcesso = dtUltimoAcesso;
	}

	public String getPrimeiroNome() {
		return primeiroNome;
	}

	public void setPrimeiroNome(String primeiroNome) {
		this.primeiroNome = primeiroNome;
	}

	public String getUltimoNome() {
		return ultimoNome;
	}

	public void setUltimoNome(String ultimoNome) {
		this.ultimoNome = ultimoNome;
	}

	public Calendar getDataNascimento() {
		return dataNascimento;
	}

	public void setDataNascimento(Calendar dataNascimento) {
		this.dataNascimento = dataNascimento;
	}

	public TipoUsuario getTipo() {
		return tipo;
	}

	public void setTipo(TipoUsuario tipo) {
		this.tipo = tipo;
	}

	public String getCpf() {
		return cpf;
	}

	public void setCpf(String cpf) {
		this.cpf = cpf;
	}

	public String getRg() {
		return rg;
	}

	public void setRg(String rg) {
		this.rg = rg;
	}

}
